package servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import util.enviaEmail;
import bean.empresaBean;
import conexao.Conexao;
import dao.empresaDao;

public class alterarEmpresa extends HttpServlet {
	private static final long serialVersionUID = 1L;

    public alterarEmpresa() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		response.setCharacterEncoding("UTF-8");
		request.setCharacterEncoding("UTF-8");

		PrintWriter out = response.getWriter();
		
		empresaBean empresa = new empresaBean();
		
		Connection conn = null;
		try {
			conn = new Conexao().getConexao();
		} catch (SQLException e) {
			new enviaEmail().enviar(e);
			out.print("falhaConexao");
			return;
		}
		
		if(request.getParameter("nome") == ""){
			out.print("Informe o nome da empresa.");
			return;
		}
		if(request.getParameter("subtitulo") == ""){
			out.print("Informe o subtitulo.");
			return;
		}
		if(request.getParameter("telefone") == ""){
			out.print("Informe o telefone.");
			return;
		}
		if(request.getParameter("endereco") == ""){
			out.print("Informe o endereco.");
			return;
		}
		if(request.getParameter("cidade") == ""){
			out.print("Informe a cidade.");
			return;
		}
		if(request.getParameter("estado") == ""){
			out.print("Informe o estado.");
			return;
		}
		
		Integer id = (Integer) request.getSession().getAttribute("idempresa"); 
		String nome = request.getParameter("nome");
		String subtitulo = request.getParameter("subtitulo");
		String telefone = request.getParameter("telefone");
		String endereco = request.getParameter("endereco");
		String cidade = request.getParameter("cidade");
		String estado = request.getParameter("estado");
		
		try {
			empresa.setId(id);
			empresa.setNome(nome);
			empresa.setSubtitulo(subtitulo);
			empresa.setTelefone(telefone);
			empresa.setEndereco(endereco);
			empresa.setCidade(cidade);
			empresa.setUf(estado);
			new empresaDao().alterar(conn, empresa);
			conn.commit();
		} catch (Exception e) {
			try {
				conn.rollback();
			} catch (Exception ex) {
				new enviaEmail().enviar(ex);
				ex.printStackTrace();
			}
			new enviaEmail().enviar(e);
			throw new RuntimeException(e);
		} finally {
			try {
				conn.close();
			} catch (Exception ex) {
				new enviaEmail().enviar(ex);
			}
		}
		
	}

}
